 /*
 * UMLSynch - VPSDE plugin part
 * http://umlsynch.googlecode.com
 *
 * Copyright 2008-2010, Evgeny Alexeyev
 * Licensed under the EPL - v1.0
 * http://www.eclipse.org/legal/epl-v10.html
 *
 */

package com.googlecode.umlsynch.vpsde.rpc_old.EclipseOperationServer;

public interface IEclipseOperationServer
{
	/*
	 *  GetClassRelations - Get class relations such as Generalization, Base classes,
	 *  					Aggregation, Base interfaces, Nested classes and Dependency
	 *  
	 *  desc              - current class description: project name, filename and class name
	 *  relationType      - relation which we are interested in
	 *  searchRestrictions- search paths restriction 
	 *  
	 *  return 			  - found classes with such relations, and first argument is the same 
	 *  					class as desc
	 */
	public VPSDEClassDescription[] GetClassRelations(VPSDEClassDescription desc, 
			String relationType, String[] searchRestrictions);
	/*		
	public VPSDEClassDescription[] GetGeneralizations( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetSuperclasses( VPSDEClassDescription ClassName);	
	public VPSDEClassDescription[] GetAggregations( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetRealizations( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetNested( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetDependency( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetAssosiations( VPSDEClassDescription ClassName);
	public VPSDEClassDescription[] GetCompositions( VPSDEClassDescription ClassName);
	*/
	
	public VPSDEClassDescription UpdateClassData( VPSDEClassDescription ClassName);
	
	// UML templates engine API
	public VPSDEClassDescription[] FindClassByName(String[] searchPaths, String searchNamePattern);
	public String FindValueByName(String sourceFile, String namePattern);
	public String FindValueByType(String sourceFile, String namePattern);
	
	// Eclipse Editor API
	public void OpenMethodImplementation(VPSDEClassDescription className, String methodName, String Desc);
	public void OpenClassWithEditor( VPSDEClassDescription MainClass);
	
	// Search API
	public void SearchTextPattern( VPSDESearchQueryDescription desc);
}
